var privilege = {
	//专门用来存放数据的	
	data:{
		role:{
			rid:'',
			name:''
		}
	},
    init:{
    	//初始化数据
    	initData:function(){
    		privilege.data.role.name =  $(this).parent().siblings("td:first").text();
    		privilege.data.role.rid = $(this).siblings("input[type='hidden']").val();
    	},
    	//初始化事件
    	initEvent:function(){
    		//给设置权限添加click事件
    		$("a").each(function(){
    			if($(this).text() == "设置权限"){
    				$(this).unbind("click");
    				$(this).bind("click",function(){
    					//显示div的操作
    					privilege.option.divOpt.showDiv();
    	                        
    					//初试化role的数据
    					privilege.init.initData.call(this);
    					//显示角色的名称
      					privilege.option.roleOpt.showRoleName();
      					
      					//加载权限树
      					
      					privilege.option.privilegeTree.changeCheckBoxStatus(false);
      					
      					privilege.option.privilegeTree.changeLoadingAndRoleTree({
      						privilegeTree:false
      					});
      					privilege.option.privilegeTree.loadPrivilegeTree();
    					return false;   //需要设置return:false，否则只会闪一下
    				});
    			}
    		});
            //给全选按钮设置change事件
    		$("#allchecked").unbind("change");
    		$("#allchecked").bind("change",function(){
    			privilege.option.privilegeTree.allChecked.call(this);
    		});
    		//给save设置click事件
    		  $("#InputDetailBar img").unbind("click");
    		  $("#InputDetailBar img").bind("click",function(){
    			  privilege.option.privilegeTree.savePrivilege();
    		  });
    	}
    },
	//页面的操作
	option:{
		divOpt:{
			showDiv:function(){
				$("div:hidden").show();
			}
		},
		roleOpt:{
			showRoleName:function(){
				$("#roleImage").text("角色："+privilege.data.role.name);
			}
		},
		//涉及到权限树 的操作
		privilegeTree:{
			zTreePlugin:"",
			setting: {
	                isSimpleData: true,
	                treeNodeKey: "id",
	                treeNodeParentKey: "pid",
	                showLine: true,
	                root: {
	                    isRoot: true,
	                    nodes: []
	                },
	                checkable:true,
	                callback:{
	                	change:function(){
	                		privilege.option.privilegeTree.setAllChecked();
	                	}	
	                }
                },
                loadPrivilegeTree:function(){
                	
                	$.post("privilegeJsonAction_showPrivilegeTree.do",{
                		rid:privilege.data.role.rid
                		},function(data){
                			
                	    privilege.option.privilegeTree.zTreePlugin = $("#privilegeTree").zTree(privilege.option.privilegeTree.setting,data);
                		privilege.option.privilegeTree.changeCheckBoxStatus("");
                		privilege.option.privilegeTree.changeLoadingAndRoleTree({
                			privilegeTree:true
                		});
                		
                		//設置全選複選框初始狀態的值
                		privilege.option.privilegeTree.setAllChecked();
              
                	});
            	},
    	  /**
		 * 变换全选复选框的选中状态
		 */
           changeCheckBoxStatus:function(status){
        	   $("#allchecked").attr("disabled",status);
           },
           /**
  			 * 从loading.gif到roleTree的转化
  			 * 如果代码都正确但是图片却不能正常的隐藏显示，可能是页面中的标签没有封闭了，或着是有问题，从而出现这个错误
  			 */
              changeLoadingAndRoleTree:function(json){
            	  if(json.privilegeTree){
            		  $("#privilegeTree").show();
            		  $("#loading").hide();
            	  }else{
            		  $("#privilegeTree").hide();
            		  $("#loading").show();
            	  }
              },
              /**
     			 * 全选复选框的功能
     			 */
                 allChecked:function(){
                	 if($(this).attr("checked")){
                		 privilege.option.privilegeTree.zTreePlugin.checkAllNodes(true);
                	 }else{
                		 privilege.option.privilegeTree.zTreePlugin.checkAllNodes(false);
                	 }
              
                 },
 /**
			 * 设置全选复选框被选中的状态
			 */
			setAllChecked:function(){
				var uncheckedNodes = privilege.option.privilegeTree.zTreePlugin.getCheckedNodes(false);
				if(uncheckedNodes.length == 0){
					$("#allchecked").attr("checked",true);
				}else{
					$("#allchecked").attr("checked",false);
				}
				
			},
			/**
   			 * 保存
   			 *    建立权限和角色之间的关系
   			 */
               savePrivilege:function(){ 
            	   var checkedNodes = privilege.option.privilegeTree.zTreePlugin.getCheckedNodes(true);
            	   var checkedStr = "";
            	   for(var i=0;i<checkedNodes.length;i++){
            		   if(i == checkedNodes.length-1){
            			   checkedStr = checkedStr + checkedNodes[i].id;
            		   }else{
            			   checkedStr = checkedStr + checkedNodes[i].id+",";
            		   }
            	   }
            	   
            	   /**
            	    * ajax端向后台传递的参数
            	    */
            	   var parameter = {
            			   rid:privilege.data.role.rid,
            			   checkedStr:checkedStr
            	   };
            	   $.post("privilegeJsonAction_savePrivilege.do",parameter,function(data){
            		   alert("操作成功！");
            	   });
               }			
            
		
		}
	}
		   
};

$().ready(function(){
	privilege.init.initEvent();
});
